﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<list>
#include<stack>
#include<queue>

using namespace std;

//int main()
//{
//	/*stack<int> st1;
//	st1.push(1);
//	st1.push(2);
//	st1.push(3);
//	st1.push(4);
//	st1.push(5);
//	cout << st1.size() << endl;
//	cout << st1.empty() << endl;
//	st1.emplace(1);
//	cout << st1.top() << endl;
//	stack<int> st2;
//	st2.push(11);
//	st2.push(22);
//	st2.swap(st1);*/
//	//stack<std::string> st1;
//	//st1.emplace("老当益壮，宁移白首之心。");
//	//cout << st1.top() << endl;
//	//st1.emplace("落霞与孤鹜齐飞，秋水共长天一色。");
//	//cout << st1.top() << endl;
//	queue<string> q1;
//	q1.emplace("关山难越，谁悲失路之人。");
//	cout << q1.front() << endl;
//	q1.push("落霞与孤鹜齐飞，秋水共长天一色。");
//	cout << q1.back() << endl;
//	cout << sizeof(double) << endl;
//	return 0;
//}

//int main()
//{
//	char a = 'a', b;
//	printf("%c,", ++a);
//	printf("%c\n", b = a++);
//	return 0;
//}

//int main()
//{
//	list<int> ls1;
//	ls1.push_back(1);
//	ls1.push_back(2);
//	ls1.push_back(3);
//	list<int>::iterator it = ls1.begin();
//	for (it = ls1.begin(); it != ls1.end(); ++it)
//	{
//		cout << *it << " ";
//	}
//	cout << endl;
//
//	return 0;
//}

﻿int main()
{
	int ar[] = { 0,1, 2, 3, 4,  5, 6, 7, 8, 9 };

	int n = sizeof(ar) / sizeof(int);

	list<int> mylist(ar, ar + n);

	list<int>::iterator pos = find(mylist.begin(), mylist.end(), 5);

	reverse(mylist.begin(), pos);

	reverse(pos, mylist.end());

	list<int>::const_reverse_iterator crit = mylist.crbegin();

	while (crit != mylist.crend())

	{

		cout << *crit << " ";

		++crit;

	}

	cout << endl;
	return 0;
}